package com.zhan.xioj.judge.codesandbox;


import com.zhan.xioj.judge.codesandbox.model.ExecuteCodeRequest;
import com.zhan.xioj.judge.codesandbox.model.ExecuteCodeResponse;


/**
 * 代码沙箱接口
 * 在项目代码只调用接口，不调用具体的实现类，这样如果后续需要使用其他代码沙箱实现类时，只需要改一行代码，便于扩展（面向接口编程）
 * CodeSandbox box = new xxx; // xxx 可以换成任何代码沙箱实现类
 * box.executeCode("print('hello')"); // 后面的都不需要改了
 */
public interface CodeSandbox {
    /**
     * 执行代码
     *
     * @param executeCodeRequest
     * @return
     */
    ExecuteCodeResponse executeCode(ExecuteCodeRequest executeCodeRequest);
}